Apache Commons IO লাইব্রেরি InputStream এবং OutputStream এর মধ্যে ডেটা কপি করার জন্য সহজ এবং কার্যকরী মেথড সরবরাহ করে। এতে স্ট্রিম থেকে ডেটা পড়া এবং লেখা অনেক সহজ হয়ে ওঠে, এবং পারফরম্যান্সের দিক থেকে এটি স্ট্যান্ডার্ড Java API এর তুলনায় অনেক দ্রুত কাজ করে।
IOUtils ক্লাসটি একটি খুবই গুরুত্বপূর্ণ ক্লাস যা InputStream থেকে OutputStream এ ডেটা কপি করার জন্য ব্যবহার করা হয়। এটি এমনকি বড় ডেটা সেটের ক্ষেত্রে পারফরম্যান্স অপটিমাইজেশনও করে।
Apache Commons IO লাইব্রেরি IOUtils ক্লাসের copy()
মেথডের মাধ্যমে স্ট্রিম থেকে স্ট্রিমে ডেটা কপি করতে সহজে কাজ করতে দেয়।
IOUtils.copy()
মেথডএই মেথডটি একটি InputStream থেকে ডেটা পড়তে থাকে এবং তা একটি OutputStream এ লিখে দেয়। এটি কার্যকরীভাবে ডেটার কপি তৈরি করে, এবং বড় ফাইল বা স্ট্রিমের জন্য খুবই কার্যকরী।
import org.apache.commons.io.IOUtils;
import java.io.*;
public class StreamCopyExample {
public static void main(String[] args) {
InputStream inputStream = null;
OutputStream outputStream = null;
try {
// ফাইলের InputStream তৈরি
inputStream = new FileInputStream("source.txt");
// OutputStream তৈরি
outputStream = new FileOutputStream("destination.txt");
// InputStream থেকে OutputStream এ কপি করা
IOUtils.copy(inputStream, outputStream);
System.out.println("ডেটা কপি করা হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// স্ট্রিম বন্ধ করা
if (inputStream != null) inputStream.close();
if (outputStream != null) outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
FileInputStream
: এটি একটি InputStream যা ফাইল থেকে ডেটা পড়ে।FileOutputStream
: এটি একটি OutputStream যা ফাইলের মধ্যে ডেটা লেখে।IOUtils.copy(inputStream, outputStream)
: এই মেথডটি InputStream থেকে OutputStream এ ডেটা কপি করে।ডেটা কপি করা হয়েছে!
এখন, বড় ডেটা সেট বা ফাইল কপি করার ক্ষেত্রে, পারফরম্যান্স উন্নত করতে IOUtils.copy() মেথড একটি buffer ব্যবহার করতে পারে। এটি ফাইল বা ডেটা স্ট্রিমের কার্যকারিতা বাড়িয়ে দেয়।
import org.apache.commons.io.IOUtils;
import java.io.*;
public class BufferedStreamCopyExample {
public static void main(String[] args) {
InputStream inputStream = null;
OutputStream outputStream = null;
try {
// BufferedInputStream তৈরি
inputStream = new BufferedInputStream(new FileInputStream("source.txt"));
// BufferedOutputStream তৈরি
outputStream = new BufferedOutputStream(new FileOutputStream("destination.txt"));
// BufferedInputStream থেকে BufferedOutputStream এ কপি করা
IOUtils.copy(inputStream, outputStream);
System.out.println("ডেটা কপি করা হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// স্ট্রিম বন্ধ করা
if (inputStream != null) inputStream.close();
if (outputStream != null) outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
যদি আপনার কাছে খুব বড় ডেটা সেট থাকে এবং আপনি স্ট্রিম কপি করার সময় large file হ্যান্ডলিং এর জন্য আরও উন্নত পারফরম্যান্স চান, তাহলে IOUtils.copyLarge()
মেথড ব্যবহার করতে পারেন। এটি InputStream থেকে OutputStream এ ডেটা কপি করার সময় বড় ডেটার ক্ষেত্রে আরো কার্যকরী এবং কার্যক্ষম।
IOUtils.copyLarge()
উদাহরণimport org.apache.commons.io.IOUtils;
import java.io.*;
public class LargeFileCopyExample {
public static void main(String[] args) {
InputStream inputStream = null;
OutputStream outputStream = null;
try {
// বড় ফাইলের InputStream
inputStream = new FileInputStream("largeSourceFile.txt");
// OutputStream
outputStream = new FileOutputStream("largeDestinationFile.txt");
// Copy large files
IOUtils.copyLarge(inputStream, outputStream);
System.out.println("বড় ফাইল কপি করা হয়েছে!");
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (inputStream != null) inputStream.close();
if (outputStream != null) outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
IOUtils.copyLarge()
মেথডটি InputStream থেকে OutputStream এ বড় ফাইল কপি করার জন্য ব্যবহৃত হয়। এটি ডেটা স্ট্রিম কপি করার সময় বড় ফাইল বা বড় ডেটা সেটের জন্য আরও ভাল পারফরম্যান্স প্রদান করে।Apache Commons IO লাইব্রেরি InputStream থেকে OutputStream এ ডেটা কপি করার জন্য খুবই সহজ এবং কার্যকরী মেথড সরবরাহ করে। IOUtils.copy(), IOUtils.copyLarge(), এবং buffered streams ব্যবহার করে আপনি সহজেই ডেটা কপি করতে পারেন, এবং যদি বড় ফাইল বা ডেটা স্ট্রিমের সাথে কাজ করেন তবে আপনার পারফরম্যান্স আরো উন্নত হবে। Apache Commons IO ফাইল এবং স্ট্রিম ম্যানিপুলেশনকে অনেক সহজ করে তোলে, যা জাভা ডেভেলপারদের জন্য একটি গুরুত্বপূর্ণ টুল।
common.read_more